<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>冒泡排序</title>
  </head>
  <body>
    <script>
      //时间复杂度 O（n^2）
      // 假设要升序列表
      // 列表相邻的两个数比较，如果前面的数比后面大，则交换这两个数
      // 一趟排序完成后则无序区减一个数，有序区加一个数
      function bubbleSort(unordArr) {
        for (let i = 0; i < unordArr.length; i++) {
          //i为有序区的长度，最后无序区只剩一个数字，不需要比较
          for (let j = 0; j < unordArr.length - i - 1; j++) {
            //此处j是bubble位置，只能到无序区的倒数第二个位置
            let bubble = unordArr[j];
            let nextnum = unordArr[j + 1];
            unordArr[j] = Math.min(bubble, nextnum);
            unordArr[j + 1] = Math.max(bubble, nextnum); //降序排列的话将这两个赋值语句调换
          }
          console.log(unordArr);
        }
        console.log(unordArr);
      }
      bubbleSort([4, 4, 5, 7, 8, 1, 2, 3, 5, 3]);
    </script>
  </body>
</html>
